package com.academic.system.model;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 论文实体类
 */
public class Paper {
    
    private Integer id;
    private String paperTitle;          // 论文名称
    private String journal;             // 期刊
    private String issueNumber;         // 期号
    private String volumeNumber;        // 卷号
    private String pageNumber;          // 页码
    private String indexLevel;          // 检索级别
    private String authors;             // 作者名单
    private String firstAuthor;         // 第一作者
    private String correspondingAuthor; // 通讯作者
    private LocalDate publicationDate;  // 发表日期
    private BigDecimal impactFactor;    // 影响因子
    private String paperLink;           // 论文链接
    private LocalDate submissionDate;   // 填报日期
    private String approvalStatus;      // 审核状态：pending, approved, rejected
    private String approvalComment;     // 审核意见
    private User creator;               // 创建者
    private User approver;              // 审核者
    
    public Paper() {
        this.submissionDate = LocalDate.now();
        this.approvalStatus = "pending";
    }
    
    // Getters and Setters
    public Integer getId() {
        return id;
    }
    
    public void setId(Integer id) {
        this.id = id;
    }
    
    public String getPaperTitle() {
        return paperTitle;
    }
    
    public void setPaperTitle(String paperTitle) {
        this.paperTitle = paperTitle;
    }
    
    public String getJournal() {
        return journal;
    }
    
    public void setJournal(String journal) {
        this.journal = journal;
    }
    
    public String getIssueNumber() {
        return issueNumber;
    }
    
    public void setIssueNumber(String issueNumber) {
        this.issueNumber = issueNumber;
    }
    
    public String getVolumeNumber() {
        return volumeNumber;
    }
    
    public void setVolumeNumber(String volumeNumber) {
        this.volumeNumber = volumeNumber;
    }
    
    public String getPageNumber() {
        return pageNumber;
    }
    
    public void setPageNumber(String pageNumber) {
        this.pageNumber = pageNumber;
    }
    
    public String getIndexLevel() {
        return indexLevel;
    }
    
    public void setIndexLevel(String indexLevel) {
        this.indexLevel = indexLevel;
    }
    
    public String getAuthors() {
        return authors;
    }
    
    public void setAuthors(String authors) {
        this.authors = authors;
    }
    
    public String getFirstAuthor() {
        return firstAuthor;
    }
    
    public void setFirstAuthor(String firstAuthor) {
        this.firstAuthor = firstAuthor;
    }
    
    public String getCorrespondingAuthor() {
        return correspondingAuthor;
    }
    
    public void setCorrespondingAuthor(String correspondingAuthor) {
        this.correspondingAuthor = correspondingAuthor;
    }
    
    public LocalDate getPublicationDate() {
        return publicationDate;
    }
    
    public void setPublicationDate(LocalDate publicationDate) {
        this.publicationDate = publicationDate;
    }
    
    public BigDecimal getImpactFactor() {
        return impactFactor;
    }
    
    public void setImpactFactor(BigDecimal impactFactor) {
        this.impactFactor = impactFactor;
    }
    
    public String getPaperLink() {
        return paperLink;
    }
    
    public void setPaperLink(String paperLink) {
        this.paperLink = paperLink;
    }
    
    public LocalDate getSubmissionDate() {
        return submissionDate;
    }
    
    public void setSubmissionDate(LocalDate submissionDate) {
        this.submissionDate = submissionDate;
    }
    
    public String getApprovalStatus() {
        return approvalStatus;
    }
    
    public void setApprovalStatus(String approvalStatus) {
        this.approvalStatus = approvalStatus;
    }
    
    public String getApprovalComment() {
        return approvalComment;
    }
    
    public void setApprovalComment(String approvalComment) {
        this.approvalComment = approvalComment;
    }
    
    public User getCreator() {
        return creator;
    }
    
    public void setCreator(User creator) {
        this.creator = creator;
    }
    
    public User getApprover() {
        return approver;
    }
    
    public void setApprover(User approver) {
        this.approver = approver;
    }
} 